package model

import (
	"encoding/json"
	"fmt"

	"github.com/garyburd/redigo/redis"
)

type UserDao struct {
	pool *redis.Pool
}

//1.根据一个用户id返回用户实例  或者err
func (ud *UserDao) GetUserById(conn redis.Conn, id int) (user *User, err error) {
	//通过给定的id 去查询这个用户
	res, err := redis.String(conn.Do("hget", "users", id))
	if err != nil {
		if err == redis.ErrNil { //没有找到对应的id
			err = ERROR_USER_NOTEXISTS
		}
		return
	}

	//这里我们要把res反序列化为User实例

	err = json.Unmarshal([]byte(res), &user)
	if err != nil {
		fmt.Println("数据库数据反序列化出错 err=", err)
		return
	}
	return
}
